A. Related Applications
1. "Address Development Technique Utilizing a Content Addressable Memory", invented by James L. Brown and Richard P. Wilder, Jr., filed on Aug. 24, 1972, having Ser. No. 283,617 and assigned to the same assignee as the instant invention.
2. "Segmented Address Development", invented by Bienvenu and filed on May 16, 1974, having Ser. No. 470,496 and assigned to the same assignee as the instant invention.
3. "Data Processing System Utilizing Data Field Descriptors for Processing Data Files", invented by Charles W. Bachman, filed on Dec. 13, 1973, having Ser. No. 424,259 and assigned to the same assignee as the instant invention.
4. "Data Processing System Incorporating a Logical Compare Instruction", invented by Charles W. Bachman, filed on Dec. 13, 1973, having Ser. No. 424,406 and assigned to the same assignee as the instant invention.
5. "Data Processing System Utilizing a Hash Instruction for Record Identification", invented by Charles W. Bachman, filed on Dec. 13, 1973, having Ser. No. 424,391 and assigned to the same assignee as the instant invention.
6. "Procedure Calls And Stack Mechanism" invented by Marc Appell et al., filed on Nov. 30, 1973 in France, having French Ser. No. 73 42705, assigned to the same assignee named herein and further filed in the U.S. on a priority convention date of Dec. 2, 1974 and having U.S. Ser. No. 529,019.
B. Field of the Invention
This invention relates generally to data processing systems and more particularly to an apparatus for transferring data from a source field to a receiving field.
C. Description of the Prior Art
Because today's digital processors are capable of operating at rates many times higher than the rates at which individual users are able to supply and accept data, the concept of time sharing a single data processor between a large number of users is finding wider and wider application. A significant problem which has long been encountered by time sharing services arises from the fact that the large number of users of the service write their own data base files and therefore specify the data in their data bases in a variety of ways. As a consequence of having a variety of different data types, data processing manufacturers have had to write complicated programs to convert and handle each of the various data types. This development is expensive since it not only includes a large amount of storage space required for instructions for each data type but also results in an extremely slow performance by the data processor.
For primitive operations such as a move operation, the concept of data independence has become significant. In description controlled files, i.e., files where the description of the contents and structure of the data is carried separately from the program, data independence requires two forms of data field representation, i.e., first the form of data field seen by the program and second the form of the data field on secondary storage. This requirement, however, makes the task of deblocking and enblocking data many times more burdensome. It has been shown that a substantial amount of data processing time is used in first decoding the type of move instruction required to deblock or enblock data and second, in the selection of the specific move instruction based on the characteristics of the sending and receiving operands.
One prior art solution to the problem of providing a move instruction to deblock and enblock different formats of data utilizes an instruction having additional bits. Some of these additional bits would indicate the data type of the source and the remainder of the bits would indicate the data type of the destination. With this knowledge, the proper subroutine to be invoked in order to transfer data from the source to a description consonant with the destination would be possible. While this solution eliminates the subroutine necessary to determine the format of data, this solution suffers from the fact that the data types must be known beforehand. Moreover, when new or different users are added to the data processing system, a regression to the former practice results since a new program and additional memory space is required.
The present invention concerns itself with a move instruction defined for all data types. Thus no matter what format a user defines his data base files, the move instruction is applicable for each situation. Moreover, by providing a move instruction defined for all data types, data independence is achieved.
In the related application to Charles W. Bachman, Ser. No. 424,259, filed on Dec. 13, 1973, incorporated fully herein, the data field descriptors describing the attributes of the various fields of a user are enumerated. By utilizing these data field descriptors, the move instruction becomes a general purpose logical instruction which operates on a plurality of various data types. It accomplishes this feature by transferring and reformatting the data at the time of execution into the format required by the destination. Thus prior to the execution time, a general procedure has been followed which requires no specialized subroutine as required by the prior art. Moreover, the specialized instructions having the additional bits are not required herein since the general purpose instruction itself executes the move operation based on the data field descriptors associated with the data fields.
This solution provides further embellishments in that alteration of the records in a field or restructuring of records in a file is easily accomplished by merely changing the data field descriptor. Since the instruction is not dependent upon the information as defined by the user, any alteration or change is resolved at execution time as was the situation for the unaltered fields. As a result, no additional or new subroutines or other solutions are required.